﻿using System;

namespace Statements1
{
    class Program
    {
        static void Main(string[] args)
        {
            ///Math类

            //Abs     绝对值
            int num1 = -3;
            Console.WriteLine(Math.Abs(num1));

            //Ceiling	返回大于或等于指定的双精度浮点数的最小整数值
            double num2 = 1.3;
            Console.WriteLine(Math.Ceiling(num2));

            //Floor	返回小于或等于指定的双精度浮点数的最大整数值
            double num3 = 1.3;
            Console.WriteLine(Math.Floor(num3));

            //Equals	返回指定的对象实例是否相等
            int num4 = 4;
            int num5 = 5;
            Console.WriteLine(Math.Equals(num4,num5));

            //Max	返回两个数中较大数的值
            double num6 = 1.1;
            int num7 = 1;
            Console.WriteLine(Math.Max(num6, num7));

            //Min	返回两个数中较小数的值
            double num8 = 1.1;
            int num9 = 1;
            Console.WriteLine(Math.Min(num8,num9));

            //Sqrt	返回指定数字的平方根
            int num10 = 8;
            Console.WriteLine(Math.Sqrt(num10));

            //Round	返回四舍五入后的值
            double num11 = 1.5;
            double num12 = 1.2;
            Console.WriteLine(Math.Round(num11));
            Console.WriteLine(Math.Round(num12));

            //输出其中的最大值和最小
            //输入
            //Console.WriteLine("请输入一个数:");
            //double num13 = double.Parse(Console.ReadLine());
            //Console.WriteLine("请输入第二个数:");
            //double num14 = double.Parse(Console.ReadLine());
            //输出
           // Console.WriteLine("两个数中最大的为：{0}",Math.Max(num13,num14));
            //Console.WriteLine("两个数中最小的为：{0}",Math.Min(num13,num14));


            ///Readom类

            //Next()	每次产生一个不同的随机正整数
            Random rd = new Random();
            Console.WriteLine(rd.Next());

            //Next(int max Value)	产生一个比 max Value 小的正整数
            Console.WriteLine(rd.Next( 90));

            //Next(int min Value,int max Value)	产生一个包含 minValue~maxValue 的正整数，但不包含 maxValue
            Console.WriteLine(rd.Next(10, 100));

            //【实例】分别使用 Next、NextDouble 以及 NextBytes 方法生成随机数。
            Console.WriteLine("产生一个10以内的正整数：{0}",rd.Next(0,10));

            Console.WriteLine("产生一个0-1之间的浮点数；{0}",rd.NextDouble());

           byte[] b = new byte[3];
            rd.NextBytes(b);
            Console.WriteLine("产生的byte类型的值：");
            foreach(byte i in b)
            {
                Console.WriteLine(i+"");
            }
            Console.WriteLine();

            ///DateTime类
            //Date	     获取实例的日期部分
            var dt1 = DateTime.Now;
            Console.WriteLine(dt1.Date);

            //Day	   获取该实例所表示的日期是一个月的第几天
            Console.WriteLine(dt1.Day);

            //DayOfWeek    获取该实例所表示的日期是一周的星期几
            Console.WriteLine(dt1.DayOfWeek);

            //DayOfYear   获取该实例所表示的日期是一年的第几天
            Console.WriteLine(dt1.DayOfYear);

            //Add(Timespan value)    在指定的日期实例上添加时间间隔值 value
            //Console.WriteLine(dt1.Add(10));

            //AddDays(double value)    在指定的日期实例上添加指定天数 value
            Console.WriteLine(dt1.AddDays(10));

            //AddHours(double value)   在指定的日期实例上添加指定的小时数 value
            Console.WriteLine(dt1.AddHours(10));

            //AddMinutes(double value)   在指定的日期实例上添加指定的分钟数 value
            Console.WriteLine(dt1.AddMinutes(10));

            //AddSeconds(double value)    在指定的日期实例上添加指定的秒数 value
            Console.WriteLine(dt1.AddSeconds(10));

            //AddMonths(int value) 在指定的日期实例上添加指定的月份 value
            Console.WriteLine(dt1.AddMonths(10));

            //AddYears (int value)  在指定的日期实例上添加指定的年份 value
            Console.WriteLine(dt1.AddYears(10));

            //【实例】使用 DateTime 类获取当前时间，分别输出该日是当
            //月的第几天、星期几以 及一年中的第几天，并计算 30 天后的日期。
            DateTime dt2 = DateTime.Now;
            Console.WriteLine("当前日期为:{0}",dt2);
            Console.WriteLine("当前是本月的第：{0}天",dt2.Day);
            Console.WriteLine("当前是星期几{0}",dt2.DayOfWeek);
            Console.WriteLine("当前是一年中的第{0}天",dt2.DayOfYear);
            Console.WriteLine("30天后是：{0}",dt2.AddDays(30));

            // 两个日期的差可由时间间隔类 TimeSpan 的对象来存放。
            // 假设计算现在距离2018年6月1日儿童节的天数，代码如下。
            DateTime dt3 = DateTime.Now;
            DateTime dt4 = new DateTime(2021,6,1);
            TimeSpan ts = dt4-dt3;
            Console.WriteLine("当前时间距离2021年6月1日{0}天",ts);
        }
    }
}
